package robot.io.sorties;
import robot.IRobot;
import environnement.Environnement;


/**
 * Class Rotation
 * Rotation du robot
 */
public class Rotation implements ISortie {
	
	//
	// Attributs
	//
	
	/**
	 * angle de rotation entre -1 et 1
	 */
	private double angle = 0.1;

	/**
	 * Angle max de rotation par tours 
	 * entre 180 pour 1/2 tours
	 * et 0 pour pas tourner
	 */
	private double pas = Math.PI / 8;
	
	private double realAngle = Math.PI / 2;

	//
	// Methods
	//

	//
	// Accessor methods
	//

	/**
	 * 1 lors de la présence d'un mur devant, 0 sinon
	 */
	@Override
	public double getValeur( ) {
		return this.realAngle ; 
	}
	
	/**
	 * Modifie la valeur du capteur
	 */
	@Override
	public void setValeur( double valeur ) {
		this.angle = valeur ;
	}
	
	//
	// Other methods
	//

	/**
	 * Modifie la valeur de l'angle et tourne le robot
	 * @param        robot Robot
	 * @param        env Environnement global
	 */
	public void action( IRobot robot) {
		this.realAngle = ( this.realAngle + this.pas * this.angle ) % (Math.PI *2) ;
	}

}
